import { keysOf } from 'naive-ui/es/_utils/index.js'
import request from '../request.js'

const ctxBase = "/server"

/** server 端自己路径下的文件，只需要 path参数  */
function listServer(data) {
  return request.post(ctxBase + "/list", data)
}
/** client 端路径下的文件  */
function listClient(data) {
  return request.post(ctxBase + "/list-client", data)
}

// ==========================

/** 连接并添加 client */
function clientConnect(data) {
    return request.post(ctxBase + "/connect", data)
}
/** 所有 client */
function clientList() {
  return request.post(ctxBase + "/client/list")
}
/** 更新 client */
function clientUpdate(data) {
  return request.post(ctxBase + "/client/update", data)
}
/** 查询 client */
function clientInfo(id) {
  return request.post(ctxBase + "/client/get/" + id)
}
/** 删除 client */
function clientDelete(id) {
  return request.post(ctxBase + "/client/del/" + id)
}

// ==========================

/** 所有 group 的名字 */
function groupNames() {
  return request.post(ctxBase + "/group/names")
}
/** 根据 name 查询所有 groupMap */
function groupList(data) {
  return request.post(ctxBase + "/group/list", data)
}
/** 添加 group  */
function groupAdd(data) {
  return request.post(ctxBase + "/group/add", data)
}
/** 更新 group */
function groupUpdate(data) {
  return request.post(ctxBase + "/group/update", data)
}
/** 删除 group-map */
function groupDel(id) {
  return request.post(ctxBase + "/group/del/" + id)
}

// ==========================

/** 同步文件夹 */
function async(data) {
  return request.post(ctxBase + "/async", data)
}
/** 同步单个文件 */
function syncFile(data) {
  return request.post(ctxBase + "/sync-file", data)
}

// ==========================

/** 所有 task */
function taskList(data) {
  return request.post(ctxBase + "/task/list", data)
}
/** task 的所有 group */
function taskGroupMaps(id) {
  return request.post(ctxBase + "/task-groupMaps/" + id)
}
/** 添加 task  */
function taskAdd(data) {
  return request.post(ctxBase + "/task/add", data)
}
/** 更新 task */
function taskUpdate(data) {
  return request.post(ctxBase + "/task/update", data)
}
/** 删除 task */
function taskDelete(id) {
  return request.post(ctxBase + "/task/del/" + id)
}
/** 添加 task-groupMap  */
function taskAddGroupMap(data) {
  return request.post(ctxBase + "/task/groupMap-add", data)
}
/** 删除 task-groupMap */
function taskDeleteGroupMap(data) {
  return request.post(ctxBase + "/task/groupMap-del", data)
}
function taskChangeActive(data) {
  return request.post(ctxBase + "/task/active", data)
}

/** 检查是否需要登录 */
function checkLogin() {
  return request.post(ctxBase + "/check")
}
/** 登录 */
function login(data) {
  return request.post(ctxBase + "/login", data)
}
function logout() {
  return request.post(ctxBase + "/logout")
}

// 同步记录
function logs(data) {
  let formdata = new FormData()
  if(data) {
    for(let key in data) {
      formdata.append(key, data[key])
    }
  }

  return request.post(ctxBase + "/logs", formdata, {
    headers: {
      'Content-Type':'application/x-www-form-urlencoded'
    }
  })
}


export default {
  listServer, listClient,
  clientConnect, clientList, clientUpdate, clientInfo, clientDelete,
  groupNames, groupList, groupAdd, groupUpdate, groupDel,
  async, syncFile,
  taskList, taskGroupMaps, taskAdd, taskUpdate, taskDelete, taskChangeActive,
  taskAddGroupMap, taskDeleteGroupMap,
  checkLogin, login, logout, logs,
}
